/**
 * 计算两个日期之间的天数差
 * @param {*} start 
 * @param {*} end 
 */
export function diffDates (start, end) {
  const date1 = new Date(start);
  const date2 = new Date(end);
  return parseInt((date2 - date1) / (1000 * 60 * 60 * 24));
}

/**
 * 时间格式化
 * @param {Date} date 时间
 * @param {String} fmt 格式化字符串
 * @returns {*} 格式化之后的字符串
 */
export function formatDate (date, fmt) {
  let o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds() // 毫秒
  }
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  }
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
    }
  }
  return fmt
}

/**
 * 非标准日期数据格式化
 * @param {String} value 值
 * @param {String} format 格式化字符串
 * @return {String} 字符串
 */
export function formatDateString (value, format) {
  if (value === -2209017600000 || value === undefined || value === null) return ''
  return formatDate(new Date(parseInt(value)), format || 'yyyy-MM-dd')
}
